package buco.core.api;

import buco.filemanagement.FileManager;

public abstract class Command<TIn, TOut> {
	public abstract TOut execute() throws Exception; 
	public abstract boolean canUndo();
	
	protected FileManager fileManager; 
	protected BundleComposition composition;
	protected TIn parameters; 
	
	public void setParameters(TIn parameters) {
		this.parameters = parameters; 
	}
	
	public void setComposition(BundleComposition composition) { 
		this.composition = composition; 
	}	
	
	public void setFileManager(FileManager manager) {
		fileManager = manager;
	}
	
	public void undo() { 
		
	}
}
